﻿using System;
using System.Collections.Generic;

namespace SCIM.Negocio
{
    public class Cliente
    {
        private Datos.Cliente.Cliente.CLT_CLIENTEDataTable cliente = new SCIM.Datos.Cliente.Cliente.CLT_CLIENTEDataTable();
        private Datos.Cliente.ClienteTableAdapters.CLT_CLIENTETableAdapter adaptador = new SCIM.Datos.Cliente.ClienteTableAdapters.CLT_CLIENTETableAdapter();

        //private Datos.Cliente.ClienteActualizar.CLA_CLIENTEDataTable clienteActualizar = new SCIM.Datos.Cliente.ClienteActualizar.CLA_CLIENTEDataTable();
        private Datos.Cliente.ClienteActualizarTableAdapters.CLA_CLIENTETableAdapter adaptadorActualizar = new SCIM.Datos.Cliente.ClienteActualizarTableAdapters.CLA_CLIENTETableAdapter();

        public string strBarrio { get; set; }
        public string strCodigo { get; set; }
        public string strCupoTotal { get; set; }
        public string strCupoDisponible { get; set; }
        public string strCupoUtilizado { get; set; }
        public string strDireccion { get; set; }
        public DateTime datFechaRegistro { get; set; }
        public string strHoraAtencion { get; set; }
        public string strIdentificacion { get; set; }
        public string strLatitud { get; set; }
        public string strLongitud { get; set; }
        public string strNielsen { get; set; }
        public string strNombre { get; set; }
        public string strRazonSocial { get; set; }
        public string strPromedioDiasNectar { get; set; }
        public string strSecuencia { get; set; }
        public string strTelefono1 { get; set; }
        public string strTelefono2 { get; set; }

        public ClaseImpuesto cliClaseImpuesto { get; set; }
        public Canal cnlCanal { get; set; }
        public CondicionPago cnpCondicionPago { get; set; }
        public EstadoCliente escEstadoCliente { get; set; }
        public GrupoCliente grcGrupoCliente { get; set; }
        public NaturalezaJuridica ntjNaturalezaJuridica { get; set; }
        public Poblacion pblPoblacion { get; set; }
        public PersonaContacto prcPersonaContacto { get; set; }
        public Ruta rtaRuta { get; set; }
        public TipoRamo tprTipoRamo { get; set; }
        public TipoRamo1 tr1TipoRamo1 { get; set; }
        public TipoDocumento tpdTipoDocumento { get; set; }
        public TipoNegocio tpnTipoNegocio { get; set; }
        public ZonaVenta znvZonaVenta { get; set; }
        public ZonaTransporte zntZonaTransporte { get; set; }
        public List<Visita> lstVisitas { get; set; }
        public List<Pedido> lstPedidos { get; set; }
        public List<Bonificacion> lstBonificaciones { get; set; }

        public Cliente()
        {
            this.tprTipoRamo = new TipoRamo();
            this.tr1TipoRamo1 = new TipoRamo1();
            this.cnpCondicionPago = new CondicionPago();
        }

        public void obtener()
        {
            cliente = adaptador.obtenerCliente(this.strCodigo);
            if (cliente.Rows.Count > 0)
            {
                this.strIdentificacion = cliente.Rows[0]["CLT_IDENTIFICACION"].ToString();
                this.strNombre = cliente.Rows[0]["CLT_NOMBRE"].ToString();
                this.strRazonSocial = cliente.Rows[0]["CLT_RAZON_SOCIAL"].ToString();
                this.strDireccion = cliente.Rows[0]["CLT_DIRECCION"].ToString();
                this.strSecuencia = cliente.Rows[0]["CLT_SECUENCIA"].ToString();
                this.strTelefono1 = cliente.Rows[0]["CLT_TELEFONO1"].ToString();
                this.strBarrio = cliente.Rows[0]["CLT_BARRIO"].ToString();
                this.strTelefono2 = cliente.Rows[0]["CLT_TELEFONO2"].ToString();
                this.strHoraAtencion = cliente.Rows[0]["CLT_HORA_ATENCION"].ToString();

                this.tprTipoRamo.strCodigo = cliente.Rows[0]["TPR_CODIGO"].ToString();
                this.tprTipoRamo.obtener();
                this.tr1TipoRamo1.strCodigo = cliente.Rows[0]["TR1_CODIGO"].ToString();
                this.tr1TipoRamo1.obtener();
                this.cnpCondicionPago.strCodigo = cliente.Rows[0]["CNP_CODIGO"].ToString();
                this.cnpCondicionPago.obtener();
            }
        }

        public void actualizar()
        {
            int resultado = adaptadorActualizar.registrar(this.strIdentificacion, this.strNombre, this.strRazonSocial, this.strDireccion, this.strTelefono1, this.strTelefono2, this.strBarrio, this.strSecuencia, this.strHoraAtencion, this.tprTipoRamo.strCodigo, this.tr1TipoRamo1.strCodigo, this.cnpCondicionPago.strCodigo, this.strLatitud, this.strLongitud, this.strCodigo);
            adaptadorActualizar.Connection.Open();
            adaptadorActualizar.Connection.BeginTransaction().Commit();
            adaptadorActualizar.Connection.Close();

        }
    }
}
